www.gusucode.com > 动网论坛Dvbbs v8.3 > 动网论坛Dvbbs v8.3\code\源程序\inc\dv_ajax.js
var dv_ajax_debug_mode = false; function dvajax_debug(text) { if (dv_ajax_debug_mode) alert("RSD: " + text); } function dvajax_init_object() { dvajax_debug("dvajax_init_object() called.."); var RetValue; try { RetValue = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { RetValue = new ActiveXObject("Microsoft.XMLHTTP"); } catch (oc) { RetValue = null; } } if(!RetValue && typeof XMLHttpRequest != "undefined") RetValue = new XMLHttpRequest(); if (!RetValue) dvajax_debug("Could not create connection object."); return RetValue; } function dvajax_run(func_name,func_obj, args) { var i, x, n; var uri; var post_data; uri = "ajax_check.asp"; if (dvajax_request_type == "GET") { if (uri.indexOf("?") == -1) uri = uri + "?rs=" + func_name; else uri = uri + "&rs=" + func_name; for (i = 0; i < args.length-1; i++) uri = uri + "&rsargs[]=" + args[i]; uri = uri + "&rsrnd=" + new Date().getTime(); post_data = null; } else { post_data = "rs=" + func_name; for (i = 0; i < args.length-1; i++) post_data = post_data + "&rsargs[]=" + urlencode(args[i]); } x = dvajax_init_object(); x.open(dvajax_request_type, uri, true); if (dvajax_request_type == "POST") { x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1"); x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); } x.onreadystatechange = function() { if (x.readyState != 4) return; dvajax_debug("received " + x.responseText); var status; var data; status = x.responseText.charAt(0); datacache = x.responseText.substring(0); data = unescape(datacache); if (status == "-") alert("Error: " + data); else args[args.length-1](func_obj,data); } x.send(post_data);//alert(uri+"***"+post_data); dvajax_debug(func_name + " uri = " + uri + "/post = " + post_data); dvajax_debug(func_name + " waiting.."); delete x; } function obj_getbyid(id) { itm = null; if (document.getElementById) { itm = document.getElementById(id); } else if (document.all) { itm = document.all[id]; } else if (document.layers) { itm = document.layers[id]; } return itm; } function dv_ajaxcheck(seltype,objid){ var objname = obj_getbyid(objid).value; if (objname){ x_checkdata(seltype,objid,objname,checkuser_cb); } } function checkuser_cb(c_type,data){ var isok_username = obj_getbyid("isok_"+c_type); if (isok_username) { isok_username.innerHTML = " "+data; if (data.indexOf("error")>0 && obj_getbyid("checkreg")) { obj_getbyid("checkreg").value = "0"; } } } function x_checkdata(x_seltype,x_obj) { dvajax_run(x_seltype,x_obj,x_checkdata.arguments); } function urlencode(text){ text = text.toString(); var matches = text.match(/[\x90-\xFF]/g); if (matches) { for (var matchid = 0; matchid < matches.length; matchid++) { var char_code = matches[matchid].charCodeAt(0); text = text.replace(matches[matchid], '%u00' + (char_code & 0xFF).toString(16).toUpperCase()); } } return escape(text).replace(/\+/g, "%2B"); } var RegCheck = { passValue : new Array(), pass : function(v,Objid,t){ var isok_pass = obj_getbyid("isok_"+Objid); RegCheck.passValue[t] = v; if (v.length<6||v.length>10){ isok_pass.innerHTML = err_msg("密码不能少于6位或多于10位"); return false; }else{ isok_pass.innerHTML = suc_msg("符合要求"); } if (t==0){ SetPwdStrengthEx(v); } else{ if (RegCheck.passValue.length==2){ if (RegCheck.passValue[0]==RegCheck.passValue[1]){ isok_pass.innerHTML = suc_msg("密码确认,符合要求"); }else{ isok_pass.innerHTML = err_msg("重复输入密码不符"); return false; } }else { isok_pass.innerHTML = err_msg("重复输入密码不符"); return false; } } return true; }, Value : function(v,Objid){ var isok_pass = obj_getbyid("isok_"+Objid); if (v==''){ isok_pass.innerHTML = err_msg("必填内容,不能为空"); return false; }else{ isok_pass.innerHTML = ""; obj_getbyid("checkreg").value = "1"; return true; } } } //错误提示信息 function err_msg(msg){ obj_getbyid("checkreg").value = "0"; return " <img src='"+forum_picurl+"/note_error.gif' border='0'/> <span class='redfont'>"+msg+"</span>"; } //成功提示信息 function suc_msg(msg){ obj_getbyid("checkreg").value = "1"; return " <img src='"+forum_picurl+"/note_ok.gif' border='0'/> <span class='bluefont'>"+msg+"</span>"; } //检查密码强弱 function pse_a1(j,b){ this.j=j;this.b=b; }; function pse_a7(c,j){ var b=false; switch(j){ case 0: if((c>='A')&&(c<='Z')){ b=true; }; break; case 1: if((c>='a')&&(c<='z')){ b=true; }; break; case 2: if((c>='0')&&(c<='9')){ b=true; }; break; case 3: if("!@#$%^&*()_+-='\";:[{]}\|.>,</?`~".indexOf(c)>=0){ b=true; }; break; case 4: if(pse_a7(c,0)||pse_a7(c,1)){ b=true; }; break; default:break; }; return b; }; function pse_a8(e,g){ if((e==null)||isNaN(g)){ return false; }else if(e.length<g){ return false; }; return true; }; function pse_a10(e,f){ var i=0; var jj=new Array(new pse_a1(0,false),new pse_a1(1,false),new pse_a1(2,false),new pse_a1(3,false)); if((e==null)||isNaN(f)){ return false; }; for(var k=0;k<e.length;k++){ for(var d=0;d<jj.length;d++){ if(!jj[d].b&&pse_a7(e.charAt(k),jj[d].j)){ jj[d].b=true;break; }; }; }; for(var d=0;d<jj.length;d++){if(jj[d].b){i++;};};if(i<f){return false;};return true;};function pse_a3(h){return(pse_a8(h,"7")&&pse_a10(h,"3"));};function pse_a2(h){return(pse_a8(h,"7")&&pse_a10(h,"2"));};function pse_a4(h){return(pse_a8(h,"5")||(!pse_a8(h,"0")));};function pse_a6(q){return document.getElementById(q);}; function SetPwdStrengthEx(o){ if(pse_a3(o)){ pse_a5(3,'pse04'); } else if(pse_a2(o)){ pse_a5(2,'pse03'); }else if(pse_a4(o)){pse_a5(1,'pse02'); }else{ pse_a5(0,'pse01'); }; }; function pse_a5(m,p){if(m>3){m=3;};for(var n=0;n<4;n++){var l="pse01";if(n<=m){l=p;};if(n>0){pse_a6("idSM"+n).className=l;};pse_a6("idSMT"+n).style.display=((n==m)?"inline":"none");};};